#include "co_simulation_application_variables.h"

namespace Kratos
{

KRATOS_CREATE_VARIABLE(double, SCALAR_DISPLACEMENT);
KRATOS_CREATE_VARIABLE(double, SCALAR_ROOT_POINT_DISPLACEMENT);
KRATOS_CREATE_VARIABLE(double, SCALAR_REACTION);
KRATOS_CREATE_VARIABLE(double, SCALAR_FORCE);
KRATOS_CREATE_VARIABLE(double, SCALAR_VOLUME_ACCELERATION);

KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS(RESULTANT_FORCE);
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS(RESULTANT_MOMENT);
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS(GLOBAL_DISPLACEMENT);
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS(GLOBAL_ROTATION);
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS(IMPOSED_FORCE);
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS(IMPOSED_MOMENT);
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS(IMPOSED_DISPLACEMENT);
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS(IMPOSED_ROTATION);
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS(EFFECTIVE_FORCE);
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS(EFFECTIVE_MOMENT);

KRATOS_CREATE_VARIABLE(std::vector<std::size_t>, NODES_ID_INDEX_MAP);
KRATOS_CREATE_VARIABLE(std::vector<std::size_t>, ELEMENTS_ID_INDEX_MAP);

KRATOS_CREATE_VARIABLE(int, COUPLING_ITERATION_NUMBER);

KRATOS_CREATE_VARIABLE(int, INTERFACE_EQUATION_ID);
KRATOS_CREATE_VARIABLE(int, EXPLICIT_EQUATION_ID);

KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS(MIDDLE_VELOCITY)
}